package gestores;

import java.util.List;

import persistence.IPerfilDAO;
import persistence.IUsuarioDAO;
import persistence.JDBCPerfilDAO;
import persistence.JDBCUsuarioDAO;
import domain.Perfil;
import domain.Usuario;

public class GestorUsuario {
	
	public Usuario selectUsuarioConPerfil(String login){
		return (new JDBCUsuarioDAO()).selectUsuarioConPerfil(login);
	}

	public Usuario selectUsuarioByNickAndPass(String userForm, String passwdForm) {
		return (new JDBCUsuarioDAO()).selectUsuarioByNickAndPass(userForm,
				passwdForm);
	}
	public List<Usuario> selectAllUsuario(){
		return (new JDBCUsuarioDAO()).selectAllUsuario();
	}

	public void crearUsuario(String login, String password, String email) {
		Integer permisos = 0; // Usuario registrado
		Double dineroInicial = 500.0;
		Integer reputacion = 5;
		
		IUsuarioDAO iu= new JDBCUsuarioDAO();
		Integer ranking = iu.countJugadores();
		Usuario usuario = new Usuario(login,password,email,permisos,dineroInicial,null,null,null,new Perfil(),null,ranking+1 ,reputacion);

		iu.insertUsuario(usuario);
	}
	
	public void crearPerfil(String nombre, String fechaNacimiento, String imagen, String apellidos, String pais, String login){
		
		Perfil perfil = new Perfil(nombre,fechaNacimiento,imagen,apellidos,pais);
		
		(new JDBCPerfilDAO()).insertPerfil(perfil,login);
		
	}
	
	public Usuario selectUsuarioByLogin(String login){
		return ((new JDBCUsuarioDAO()).selectUsuarioByLogin(login));
	}
	
	 public void actualizarPerfil(String nombre, String apellidos,
             String pais,String fechaNacimiento,
                    String imagen,String login){

		 IPerfilDAO ip= new JDBCPerfilDAO();
		 Perfil perfil = new Perfil(nombre,fechaNacimiento,imagen,apellidos,pais);
		 ip.updatePerfil(perfil, login);
}
	 
	 
	 public boolean tienePerfil(String login){
	        boolean tiene=true;
	        
	    
	        IUsuarioDAO iu = new JDBCUsuarioDAO();
	        Usuario u =  iu.selectUsuarioConPerfil(login);
	        
	        if(u.getPerfil().getNombre()=="")
	                tiene=false;
	        return tiene;
	    }
	 
	  public Usuario getUsuario(String login) {
          Usuario usuario = new JDBCUsuarioDAO().selectUsuarioConPerfil(login);
          
          return usuario;

  }
	  public Usuario getUsuarioConCI(String login) {
          Usuario usuario = new JDBCUsuarioDAO().selectUsuarioConPerfil(login);
          
          return usuario;

  }
	  
  
  public void agregarEducado(String login, String user){
		(new JDBCUsuarioDAO()).agregarEducado(login, user);
	}
  
  
  //TODO arreglar, no funciona
  public boolean esFundador(String login){
	 // boolean res=false;
//	 IUsuarioDAO iu = new JDBCUsuarioDAO();
//	Usuario usuario = iu.selectUsuarioFundadorConCI(login);
//	if(!usuario.getClubInversion().getNombre().equals(null))
//	 res=true;
	  return true;
  }
  

}
